/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Trab1;

/**
 *
 * @author marcela.farias
 */
public class Trapezio {
    
    private int BaseA;
    private int BaseB;
    private int Altura;
    
    public Trapezio(int BaseA, int BaseB, int Altura) throws Exception {
        if (BaseA > 0 && BaseB > 0 && Altura > 0 && BaseA != BaseB)
        {
            this.BaseA = BaseA;
            this.BaseB = BaseB;
            this.Altura = Altura;
        }
        else {
            throw new Exception ("Valores não permitidos");
        }
    }
    
    public void setBaseA (int BaseA) {
        this.BaseA = BaseA;    
    }
    
    public void setBaseB (int BaseB) {
        this.BaseB = BaseB;    
    }
    
    public void setAltura (int Altura) {
        this.Altura = Altura;    
    }
    
    
    public int getBaseA () {
        return BaseA;    
    }
    
    public int getBaseB() {
        return BaseB;
    }
    
    public int getAltura() {
        return Altura;
    }
    
    
    /** Calcula o perímetro do Trapézio criado.
     * @return int com valor do perímetro
     */
    
    /** Calculo dos lados do trapézio:
     * Para encontrar os lados, é preciso marcar um triangulo no trapézio, definido por:
     * altura como um dos lados, a diferença entre a Base Maior e a Base Menor, dividida por 2 como outro lado
     * e o lado a ser descoberto como hipotenusa
     */
    
    public int Perimetro() { 
        int lado = 0;
        if (BaseA >= BaseB) {
            lado = (BaseA - BaseB)/2;            
        } else {
            lado = (BaseB - BaseA)/2;
        } 
        
        int hipotenusa = (int) Math.sqrt(Math.pow(lado, 2) + Math.pow(Altura, 2));         
        
        int perimetro = hipotenusa + hipotenusa + BaseA + BaseB;
        
        return perimetro;   
    }
    
    
    /** Calcula a area do Trapézio criado.
     * @return int com valor da area
     */
    
    public int Area() {
        int area = ((BaseA + BaseB)*Altura)/2;
        return area;
    }        
    
} 
